#ifndef DPLDRAWSCAN_H
#define DPLDRAWSCAN_H

#include <QObject>
class QImage ;

#define  DATA_TAIL   32



class DopplerDrawScan : public QObject
{
    Q_OBJECT

public:
    enum DRAW_TYPE
    {
        NO_DRAW = -1,
        A_SCAN  = 0 ,
        B_SCAN      ,
        C_SCAN      ,
        CC_SCAN     , // 2 directions c scan
        S_SCAN
    };

    struct DrawInfo
    {
        DRAW_TYPE nDrawType ;
        int       nGroupId  ;
        int       nBeamId   ;
        int       nPointQty ;
        int    nEncoderType ;
        unsigned int nOffset ;
        volatile unsigned char*  pData ;

        DrawInfo()
        {
            nDrawType = NO_DRAW  ;
            nGroupId  = 0        ;
            nBeamId   = 0        ;
            nPointQty = 600      ;
            nEncoderType  = 0    ;
            pData     = 0        ;
            nOffset   = 0        ;
        }
    };



    explicit DopplerDrawScan();
    void SetDrawType(DRAW_TYPE nType_)  ;
    void SetDrawInfo(DrawInfo* cInfo_)  ;
    void SetPointQty(int nPointQty_) ;
    void SetSampleDataAddr(volatile unsigned char* pData_) ;
    virtual void Draw(QImage* pImage_);

protected:
    DrawInfo  m_cInfo   ;
};

#endif // DPLDRAWSCAN_H
